perm filename PASDEF.ARR[UP,DOC] blob
sn#484354 filedate 1979-10-22 generic text, type C, neo UTF8
COMMENT ā VALID 00003 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 IMPLEMENTATION DESCRIPTION.
C00007 00003 + Future Plans:
C00015 ENDMK
Cā;
IMPLEMENTATION DESCRIPTION.
DEC-10, DEC-20 (LOTS) PASCAL/PASSGO at LOTS
---------------------
0. DATE/VERSION: 6-sep-79. 1.1.
1. DISTRIBUTOR/IMPLEMENTOR/MAINTAINER:
Distributor/Maintainer:
J. Q. Johnson
LOTS Computer Facility Arpanet:
Stanford University Admin.JQJ@SU-SCORE
Stanford, CA 94305 (415)497-3214
Implementor/Maintainer:
Armando R. Rodriguez
Computer Science Department Arpanet:
Stanford University ARR@SU-AI
Stanford, CA 94305 (415)497-4971
2. MACHINE: Digital Equipment Corp. DEC-10 and DEC-20.
3. SYSTEM CONFIGURATION: DEC TOPS-10, TOPS-20; TENEX and WAITS monitors,
using Concise Command Language (CCL). Uses KA-10 instruction set.
Modifications for KI-10 improved inst. set, under development.
4. DISTRIBUTION:
+ Nondisclosure agreement required. See accompanying form.
(*We require this with two purposes:
a) To know how many copies are around, and who has them.
b) To prevent the use of our improvements by profit-oriented
organizations in products that would later be sold.*)
+ You should provide the transport medium. Methods used until now:
- Through the Arpanet.
- You send us a 9 track tape (no less than 1200 feet,
please). Specify density and format desired.
(default: 1600 bpi, DUMPER/BACKUP INTERCHANGE ormat).
- You come by and get it on your tape.
+ Distributed on an "as is" basis. Bug reports are encouraged and
we will try to fix them and notify you as soon as possible.
+ The compiler is going through a continual, although slow,
improvement process. Users, and PUG, will be notified of major
new releases and critical bugs.
5. DOCUMENTATION:
+ A modified version of the machine-retrievable manual from the
original Hamburg package, as a complement to Jensen & Wirth.
+ A "help" file for online access to the most relevant topics.
+ A NOTES file with comments and hints from local users.
+ An implementation checklist.
+ A description of interesting parts of the internal policies
(Packing mechanism, linkage conventions, the symbol table, a
complete list of error messages, and a checklist to add
predefined procedures).
+ All the documentation machine-retrievable.
6. MAINTENANCE POLICY:
+ We are our own main user: maintenance benefits us first.
+ No guaranteed reply-time.
+ One to four releases a year, for the next two years, at least.
+ Future Plans:
- Support full Standard Pascal
- Optional flagging of use of non-standard features.
- Sets of any size (probably 144-element sets first)
- CHAR going from space to '}'.
- Make the heap a real heap.
- 20-native version.
- A more friendly user interface: Improvements in the
debugger, more and better utility programs, more
measurement tools; better error messages.
7. STANDARD:
+ It supports the standard as defined in Jensen & Wirth, except:
- Records, Arrays and Files of Files are not supported.
- Read and Write to non-text Files are not supported.
- Set expressions that contain a range delimited by variables
or expressions are not supported.
- The heap works as a stack. Procedure DISPOSE 'pops' the given
item and everything else that was created afterwards.
+ Set size is 72 elements, set origin is zero.
+ Type CHAR includes only from space to underbar. No lower case.
+ EXTENSIONS: Type ASCII; functions FIRST, LAST, UPPERBOUND,
LOWERBOUND for scalars and arrays, respectively; MIN and MAX;
separately compiled procedures; a string manipulation package;
LOOP-EXIT construct; OTHERWISE in CASE statements;
initialization procedures; DATE, TIME, REALTIME.
8. MEASUREMENTS:
12000+ lines of PASCAL code, 590,000+ chars including comments.
COMPILATION SPEED: around 13,000 chars/sec of CPU time on a 2050.
EXECUTION SPEED: as good as that of the non-optimized FORTRAN
compiler.
COMPILATION SPACE: the compiler takes 50k of upper segment, and
can work with 16k lower segment.
You receive two compilers (hence the name). They support exactly
the same language and features, but one of them (PASSGO) produces
the code incore, which saves 25% CPU time and a lot of I/O in the
compile-load-and-go sequence. This is ideal for development, and
particularly helpful in a student environment.
9. RELIABLILITY: Very good. It is very heavily used at LOTS (the program
that runs the most, after the editor). Implemented at 30+ sites.
10. DEVELOPMENT METHOD: We started with the Hamburg-76 compiler,
distributed by DECUS, which is a very good compiler itself. We
have been cleaning bugs, adding missing parts of the standard, and
adding features in the last 18 months.
11. LIBRARY SUPPORT AND OTHER FEATURES:
+ Only the essential runtime routines are written in MACRO:
most of the library is written in PASCAL.
+ Access to the FORTRAN library support.
+ Access to external FORTRAN and MACRO routines.
+ Separate compilation.
+ Symbolic Post-mortem dump.
+ Interactive runtime source-level debugging package.
+ PCREF, a cross-referencer derived from Hamburg's CROSS.
+ PFORM, a prettyprinter.
+ Statement counts.